/**
 * @description: 根据键名（a.b.c的形式）查找对象中的值
 * @param {*} dataObj
 * @param {*} keyName
 * @return {*} 属性值
 */
export default function lookup(dataObj, keyName) {
  if (keyName === ".") {
    return dataObj[keyName]
  } else {
    // 将键名字符串按照点分割成数组
    const keys = keyName.split(".")

    // 使用reduce方法遍历所有键，并逐步深入对象结构
    return keys.reduce((obj, key) => {
      // 如果当前对象中不存在该键，则返回undefined
      return obj && obj[key] !== undefined ? obj[key] : undefined
    }, dataObj)
  }
}
